home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / CIncludes / HyperXCmd.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-08-12  |  14.5 KB  |  624 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        HyperXCmd.h
  3.  
  4.      Contains:    Interfaces for HyperCard XCMD's
  5.  
  6.      Version:    Technology:    HyperCard 2.3
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1987-1997 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18. #ifndef __HYPERXCMD__
  19. #define __HYPERXCMD__
  20.  
  21. #ifndef __TYPES__
  22. #include <Types.h>
  23. #endif
  24. #ifndef __FP__
  25. #include <fp.h>
  26. #endif
  27. #ifndef __EVENTS__
  28. #include <Events.h>
  29. #endif
  30. #ifndef __TEXTEDIT__
  31. #include <TextEdit.h>
  32. #endif
  33. #ifndef __MENUS__
  34. #include <Menus.h>
  35. #endif
  36. #ifndef __STANDARDFILE__
  37. #include <StandardFile.h>
  38. #endif
  39.  
  40.  
  41.  
  42. #if PRAGMA_ONCE
  43. #pragma once
  44. #endif
  45.  
  46. #ifdef __cplusplus
  47. extern "C" {
  48. #endif
  49.  
  50. #if PRAGMA_IMPORT
  51. #pragma import on
  52. #endif
  53.  
  54. #if PRAGMA_STRUCT_ALIGN
  55.     #pragma options align=mac68k
  56. #elif PRAGMA_STRUCT_PACKPUSH
  57.     #pragma pack(push, 2)
  58. #elif PRAGMA_STRUCT_PACK
  59.     #pragma pack(2)
  60. #endif
  61.  
  62. /* result codes */
  63.  
  64. enum {
  65.     xresSucc                    = 0,
  66.     xresFail                    = 1,
  67.     xresNotImp                    = 2
  68. };
  69.  
  70. /* XCMDBlock constants for event.what... */
  71.  
  72. enum {
  73.     xOpenEvt                    = 1000,                            /* the first event after you are created */
  74.     xCloseEvt                    = 1001,                            /* your window is being forced close (Quit?) */
  75.     xGiveUpEditEvt                = 1002,                            /* you are losing Edit... */
  76.     xGiveUpSoundEvt                = 1003,                            /* you are losing the sound channel... */
  77.     xHidePalettesEvt            = 1004,                            /* someone called HideHCPalettes */
  78.     xShowPalettesEvt            = 1005,                            /* someone called ShowHCPalettes */
  79.     xEditUndo                    = 1100,                            /* Edit——Undo */
  80.     xEditCut                    = 1102,                            /* Edit——Cut */
  81.     xEditCopy                    = 1103,                            /* Edit——Copy */
  82.     xEditPaste                    = 1104,                            /* Edit——Paste */
  83.     xEditClear                    = 1105,                            /* Edit——Clear */
  84.     xSendEvt                    = 1200,                            /* script has sent you a message (text) */
  85.     xSetPropEvt                    = 1201,                            /* set a window property */
  86.     xGetPropEvt                    = 1202,                            /* get a window property */
  87.     xCursorWithin                = 1300,                            /* cursor is within the window */
  88.     xMenuEvt                    = 1400,                            /* user has selected an item in your menu */
  89.     xMBarClickedEvt                = 1401,                            /* a menu is about to be shown--update if needed */
  90.     xShowWatchInfoEvt            = 1501,                            /* for variable and message watchers */
  91.     xScriptErrorEvt                = 1502,                            /* place the insertion point */
  92.     xDebugErrorEvt                = 1503,                            /* user clicked "Debug" at a complaint */
  93.     xDebugStepEvt                = 1504,                            /* hilite the line */
  94.     xDebugTraceEvt                = 1505,                            /* same as step but tracing */
  95.     xDebugFinishedEvt            = 1506                            /* script ended */
  96. };
  97.  
  98.  
  99. enum {
  100.     paletteProc                    = 2048,                            /* Windoid with grow box */
  101.     palNoGrowProc                = 2052,                            /* standard Windoid defproc */
  102.     palZoomProc                    = 2056,                            /* Windoid with zoom and grow */
  103.     palZoomNoGrow                = 2060                            /* Windoid with zoom and no grow */
  104. };
  105.  
  106.  
  107. enum {
  108.     hasZoom                        = 8,
  109.     hasTallTBar                    = 2,
  110.     toggleHilite                = 1
  111. };
  112.  
  113. /* paramCount is set to these constants when first calling special XThings */
  114.  
  115. enum {
  116.     xMessageWatcherID            = -2,
  117.     xVariableWatcherID            = -3,
  118.     xScriptEditorID                = -4,
  119.     xDebuggerID                    = -5
  120. };
  121.  
  122. /* XTalkObjectPtr->objectKind values */
  123.  
  124. enum {
  125.     stackObj                    = 1,
  126.     bkgndObj                    = 2,
  127.     cardObj                        = 3,
  128.     fieldObj                    = 4,
  129.     buttonObj                    = 5
  130. };
  131.  
  132. /* selectors for ShowHCAlert's dialogs (shown as buttonID:buttonText) */
  133.  
  134. enum {
  135.     errorDlgID                    = 1,                            /* 1:OK (default) */
  136.     confirmDlgID                = 2,                            /* 1:OK (default) and 2:Cancel */
  137.     confirmDelDlgID                = 3,                            /* 1:Cancel (default) and 2:Delete */
  138.     yesNoCancelDlgID            = 4                                /* 1:Yes (default), 2:Cancel, and 3:No */
  139. };
  140.  
  141.  
  142. /* type definitions */
  143. struct XCmdBlock {
  144.     short                             paramCount;                    /* If = -1 then new use for XWindoids */
  145.     Handle                             params[16];
  146.     Handle                             returnValue;
  147.     Boolean                         passFlag;
  148.     SignedByte                         filler1;
  149.     UniversalProcPtr                 entryPoint;                    /* to call back to HyperCard */
  150.     short                             request;
  151.     short                             result;
  152.     long                             inArgs[8];
  153.     long                             outArgs[4];
  154. };
  155. typedef struct XCmdBlock XCmdBlock;
  156.  
  157. typedef XCmdBlock *                        XCmdPtr;
  158.  
  159. struct XWEventInfo {
  160.     EventRecord                     event;
  161.     WindowPtr                         eventWindow;
  162.     long                             eventParams[9];
  163.     Handle                             eventResult;
  164. };
  165. typedef struct XWEventInfo XWEventInfo;
  166.  
  167. typedef XWEventInfo *                    XWEventInfoPtr;
  168. struct XTalkObject {
  169.     short                             objectKind;                    /* stack, bkgnd, card, field, or button */
  170.     long                             stackNum;                    /* reference number of the source stack */
  171.     long                             bkgndID;
  172.     long                             cardID;
  173.     long                             buttonID;
  174.     long                             fieldID;
  175. };
  176. typedef struct XTalkObject XTalkObject;
  177.  
  178. typedef XTalkObject *                    XTalkObjectPtr;
  179. /* maximum number of checkpoints in a script */
  180.  
  181. enum {
  182.     maxCachedChecks                = 16
  183. };
  184.  
  185. struct CheckPts {
  186.     short                             checks[16];
  187. };
  188. typedef struct CheckPts CheckPts;
  189.  
  190. typedef CheckPts *                        CheckPtPtr;
  191. typedef CheckPtPtr *                    CheckPtHandle;
  192. /*
  193.         HyperTalk Utilities  
  194. */
  195. EXTERN_API( Handle )
  196. EvalExpr                        (XCmdPtr                 paramPtr,
  197.                                  ConstStr255Param         expr);
  198.  
  199. EXTERN_API( void )
  200. SendCardMessage                    (XCmdPtr                 paramPtr,
  201.                                  ConstStr255Param         msg);
  202.  
  203. EXTERN_API( void )
  204. SendHCMessage                    (XCmdPtr                 paramPtr,
  205.                                  ConstStr255Param         msg);
  206.  
  207. EXTERN_API( void )
  208. RunHandler                        (XCmdPtr                 paramPtr,
  209.                                  Handle                 handler);
  210.  
  211. /*
  212.         Memory Utilities  
  213. */
  214. EXTERN_API( Handle )
  215. GetGlobal                        (XCmdPtr                 paramPtr,
  216.                                  ConstStr255Param         globName);
  217.  
  218. EXTERN_API( void )
  219. SetGlobal                        (XCmdPtr                 paramPtr,
  220.                                  ConstStr255Param         globName,
  221.                                  Handle                 globValue);
  222.  
  223. EXTERN_API( void )
  224. ZeroBytes                        (XCmdPtr                 paramPtr,
  225.                                  void *                    dstPtr,
  226.                                  long                     longCount);
  227.  
  228. /*
  229.         String Utilities  
  230. */
  231. EXTERN_API( void )
  232. ScanToReturn                    (XCmdPtr                 paramPtr,
  233.                                  Ptr *                    scanPtr);
  234.  
  235. EXTERN_API( void )
  236. ScanToZero                        (XCmdPtr                 paramPtr,
  237.                                  Ptr *                    scanPtr);
  238.  
  239. EXTERN_API( Boolean )
  240. StringEqual                        (XCmdPtr                 paramPtr,
  241.                                  ConstStr255Param         str1,
  242.                                  ConstStr255Param         str2);
  243.  
  244. EXTERN_API( long )
  245. StringLength                    (XCmdPtr                 paramPtr,
  246.                                  void *                    strPtr);
  247.  
  248. EXTERN_API( void *)
  249. StringMatch                        (XCmdPtr                 paramPtr,
  250.                                  ConstStr255Param         pattern,
  251.                                  void *                    target);
  252.  
  253. EXTERN_API( void )
  254. ZeroTermHandle                    (XCmdPtr                 paramPtr,
  255.                                  Handle                 hndl);
  256.  
  257. /*
  258.         String Conversions  
  259. */
  260. EXTERN_API( void )
  261. BoolToStr                        (XCmdPtr                 paramPtr,
  262.                                  Boolean                 bool,
  263.                                  Str255                 str);
  264.  
  265. EXTERN_API( void )
  266. Double_tToStr                    (XCmdPtr                 paramPtr,
  267.                                  double_t                 num,
  268.                                  Str255                 str);
  269.  
  270. EXTERN_API( void )
  271. LongToStr                        (XCmdPtr                 paramPtr,
  272.                                  long                     posNum,
  273.                                  Str255                 str);
  274.  
  275. EXTERN_API( void )
  276. NumToHex                        (XCmdPtr                 paramPtr,
  277.                                  long                     num,
  278.                                  short                     nDigits,
  279.                                  Str255                 str);
  280.  
  281. EXTERN_API( void )
  282. NumToStr                        (XCmdPtr                 paramPtr,
  283.                                  long                     num,
  284.                                  Str255                 str);
  285.  
  286. EXTERN_API( Handle )
  287. PasToZero                        (XCmdPtr                 paramPtr,
  288.                                  ConstStr255Param         str);
  289.  
  290. EXTERN_API( void )
  291. PointToStr                        (XCmdPtr                 paramPtr,
  292.                                  Point                     pt,
  293.                                  Str255                 str);
  294.  
  295. EXTERN_API( void )
  296. RectToStr                        (XCmdPtr                 paramPtr,
  297.                                  const Rect *            rct,
  298.                                  Str255                 str);
  299.  
  300. EXTERN_API( void )
  301. ReturnToPas                        (XCmdPtr                 paramPtr,
  302.                                  void *                    zeroStr,
  303.                                  Str255                 pasStr);
  304.  
  305. EXTERN_API( Boolean )
  306. StrToBool                        (XCmdPtr                 paramPtr,
  307.                                  ConstStr255Param         str);
  308.  
  309. EXTERN_API( double_t )
  310. StrToDouble_t                    (XCmdPtr                 paramPtr,
  311.                                  ConstStr255Param         str);
  312.  
  313. EXTERN_API( long )
  314. StrToLong                        (XCmdPtr                 paramPtr,
  315.                                  ConstStr255Param         str);
  316.  
  317. EXTERN_API( long )
  318. StrToNum                        (XCmdPtr                 paramPtr,
  319.                                  ConstStr255Param         str);
  320.  
  321. EXTERN_API( void )
  322. StrToPoint                        (XCmdPtr                 paramPtr,
  323.                                  ConstStr255Param         str,
  324.                                  Point *                pt);
  325.  
  326. EXTERN_API( void )
  327. StrToRect                        (XCmdPtr                 paramPtr,
  328.                                  ConstStr255Param         str,
  329.                                  Rect *                    rct);
  330.  
  331. EXTERN_API( void )
  332. ZeroToPas                        (XCmdPtr                 paramPtr,
  333.                                  void *                    zeroStr,
  334.                                  Str255                 pasStr);
  335.  
  336. /*
  337.         Field Utilities  
  338. */
  339. EXTERN_API( Handle )
  340. GetFieldByID                    (XCmdPtr                 paramPtr,
  341.                                  Boolean                 cardFieldFlag,
  342.                                  short                     fieldID);
  343.  
  344. EXTERN_API( Handle )
  345. GetFieldByName                    (XCmdPtr                 paramPtr,
  346.                                  Boolean                 cardFieldFlag,
  347.                                  ConstStr255Param         fieldName);
  348.  
  349. EXTERN_API( Handle )
  350. GetFieldByNum                    (XCmdPtr                 paramPtr,
  351.                                  Boolean                 cardFieldFlag,
  352.                                  short                     fieldNum);
  353.  
  354. EXTERN_API( void )
  355. SetFieldByID                    (XCmdPtr                 paramPtr,
  356.                                  Boolean                 cardFieldFlag,
  357.                                  short                     fieldID,
  358.                                  Handle                 fieldVal);
  359.  
  360. EXTERN_API( void )
  361. SetFieldByName                    (XCmdPtr                 paramPtr,
  362.                                  Boolean                 cardFieldFlag,
  363.                                  ConstStr255Param         fieldName,
  364.                                  Handle                 fieldVal);
  365.  
  366. EXTERN_API( void )
  367. SetFieldByNum                    (XCmdPtr                 paramPtr,
  368.                                  Boolean                 cardFieldFlag,
  369.                                  short                     fieldNum,
  370.                                  Handle                 fieldVal);
  371.  
  372. EXTERN_API( TEHandle )
  373. GetFieldTE                        (XCmdPtr                 paramPtr,
  374.                                  Boolean                 cardFieldFlag,
  375.                                  short                     fieldID,
  376.                                  short                     fieldNum,
  377.                                  ConstStr255Param         fieldName);
  378.  
  379. EXTERN_API( void )
  380. SetFieldTE                        (XCmdPtr                 paramPtr,
  381.                                  Boolean                 cardFieldFlag,
  382.                                  short                     fieldID,
  383.                                  short                     fieldNum,
  384.                                  ConstStr255Param         fieldName,
  385.                                  TEHandle                 fieldTE);
  386.  
  387. /*
  388.         Miscellaneous Utilities  
  389. */
  390. EXTERN_API( void )
  391. BeginXSound                        (XCmdPtr                 paramPtr,
  392.                                  WindowPtr                 window);
  393.  
  394. EXTERN_API( void )
  395. EndXSound                        (XCmdPtr                 paramPtr);
  396.  
  397. EXTERN_API( Boolean )
  398. GetFilePath                        (XCmdPtr                 paramPtr,
  399.                                  ConstStr255Param         fileName,
  400.                                  short                     numTypes,
  401.                                  ConstSFTypeListPtr     typeList,
  402.                                  Boolean                 askUser,
  403.                                  OSType *                fileType,
  404.                                  Str255                 fullName);
  405.  
  406. EXTERN_API( void )
  407. GetXResInfo                        (XCmdPtr                 paramPtr,
  408.                                  short *                resFile,
  409.                                  short *                resID,
  410.                                  ResType *                rType,
  411.                                  Str255                 name);
  412.  
  413. EXTERN_API( void )
  414. Notify                            (XCmdPtr                 paramPtr);
  415.  
  416. EXTERN_API( void )
  417. SendHCEvent                        (XCmdPtr                 paramPtr,
  418.                                  const EventRecord *    event);
  419.  
  420. EXTERN_API( void )
  421. SendWindowMessage                (XCmdPtr                 paramPtr,
  422.                                  WindowPtr                 windPtr,
  423.                                  ConstStr255Param         windowName,
  424.                                  ConstStr255Param         msg);
  425.  
  426. EXTERN_API( WindowPtr )
  427. FrontDocWindow                    (XCmdPtr                 paramPtr);
  428.  
  429. EXTERN_API( long )
  430. StackNameToNum                    (XCmdPtr                 paramPtr,
  431.                                  ConstStr255Param         stackName);
  432.  
  433. EXTERN_API( short )
  434. ShowHCAlert                        (XCmdPtr                 paramPtr,
  435.                                  short                     dlgID,
  436.                                  ConstStr255Param         promptStr);
  437.  
  438. EXTERN_API( Boolean )
  439. AbortInQueue                    (XCmdPtr                 paramPtr);
  440.  
  441. EXTERN_API( void )
  442. FlushStackFile                    (XCmdPtr                 paramPtr);
  443.  
  444. /*
  445.         Creating and Disposing XWindoids  
  446. */
  447. EXTERN_API( WindowPtr )
  448. NewXWindow                        (XCmdPtr                 paramPtr,
  449.                                  const Rect *            boundsRect,
  450.                                  ConstStr255Param         title,
  451.                                  Boolean                 visible,
  452.                                  short                     procID,
  453.                                  Boolean                 color,
  454.                                  Boolean                 floating);
  455.  
  456. EXTERN_API( WindowPtr )
  457. GetNewXWindow                    (XCmdPtr                 paramPtr,
  458.                                  ResType                 templateType,
  459.                                  short                     templateID,
  460.                                  Boolean                 color,
  461.                                  Boolean                 floating);
  462.  
  463. EXTERN_API( void )
  464. CloseXWindow                    (XCmdPtr                 paramPtr,
  465.                                  WindowPtr                 window);
  466.  
  467. /*
  468.         XWindoid Utilities  
  469. */
  470. EXTERN_API( void )
  471. HideHCPalettes                    (XCmdPtr                 paramPtr);
  472.  
  473. EXTERN_API( void )
  474. ShowHCPalettes                    (XCmdPtr                 paramPtr);
  475.  
  476. EXTERN_API( void )
  477. RegisterXWMenu                    (XCmdPtr                 paramPtr,
  478.                                  WindowPtr                 window,
  479.                                  MenuHandle             menu,
  480.                                  Boolean                 registering);
  481.  
  482. EXTERN_API( void )
  483. SetXWIdleTime                    (XCmdPtr                 paramPtr,
  484.                                  WindowPtr                 window,
  485.                                  long                     interval);
  486.  
  487. EXTERN_API( void )
  488. XWHasInterruptCode                (XCmdPtr                 paramPtr,
  489.                                  WindowPtr                 window,
  490.                                  Boolean                 haveCode);
  491.  
  492. EXTERN_API( void )
  493. XWAlwaysMoveHigh                (XCmdPtr                 paramPtr,
  494.                                  WindowPtr                 window,
  495.                                  Boolean                 moveHigh);
  496.  
  497. EXTERN_API( void )
  498. XWAllowReEntrancy                (XCmdPtr                 paramPtr,
  499.                                  WindowPtr                 window,
  500.                                  Boolean                 allowSysEvts,
  501.                                  Boolean                 allowHCEvts);
  502.  
  503. /*
  504.         Text Editing Utilities  
  505. */
  506. EXTERN_API( void )
  507. BeginXWEdit                        (XCmdPtr                 paramPtr,
  508.                                  WindowPtr                 window);
  509.  
  510. EXTERN_API( void )
  511. EndXWEdit                        (XCmdPtr                 paramPtr,
  512.                                  WindowPtr                 window);
  513.  
  514. EXTERN_API( WordBreakUPP )
  515. HCWordBreakProc                    (XCmdPtr                 paramPtr);
  516.  
  517. EXTERN_API( void )
  518. PrintTEHandle                    (XCmdPtr                 paramPtr,
  519.                                  TEHandle                 hTE,
  520.                                  StringPtr                 header);
  521.  
  522. /*
  523.         Script Editor support  
  524. */
  525. EXTERN_API( CheckPtHandle )
  526. GetCheckPoints                    (XCmdPtr                 paramPtr);
  527.  
  528. EXTERN_API( void )
  529. SetCheckPoints                    (XCmdPtr                 paramPtr,
  530.                                  CheckPtHandle             checkLines);
  531.  
  532. EXTERN_API( void )
  533. FormatScript                    (XCmdPtr                 paramPtr,
  534.                                  Handle                 scriptHndl,
  535.                                  long *                    insertionPoint,
  536.                                  Boolean                 quickFormat);
  537.  
  538. EXTERN_API( void )
  539. SaveXWScript                    (XCmdPtr                 paramPtr,
  540.                                  Handle                 scriptHndl);
  541.  
  542. EXTERN_API( void )
  543. GetObjectName                    (XCmdPtr                 paramPtr,
  544.                                  XTalkObjectPtr         xObjPtr,
  545.                                  Str255                 objName);
  546.  
  547. EXTERN_API( void )
  548. GetObjectScript                    (XCmdPtr                 paramPtr,
  549.                                  XTalkObjectPtr         xObjPtr,
  550.                                  Handle *                scriptHndl);
  551.  
  552. EXTERN_API( void )
  553. SetObjectScript                    (XCmdPtr                 paramPtr,
  554.                                  XTalkObjectPtr         xObjPtr,
  555.                                  Handle                 scriptHndl);
  556.  
  557. /*
  558.         Debugging Tools support  
  559. */
  560. EXTERN_API( void )
  561. AbortScript                        (XCmdPtr                 paramPtr);
  562.  
  563. EXTERN_API( void )
  564. GoScript                        (XCmdPtr                 paramPtr);
  565.  
  566. EXTERN_API( void )
  567. StepScript                        (XCmdPtr                 paramPtr,
  568.                                  Boolean                 stepInto);
  569.  
  570. EXTERN_API( void )
  571. CountHandlers                    (XCmdPtr                 paramPtr,
  572.                                  short *                handlerCount);
  573.  
  574. EXTERN_API( void )
  575. GetHandlerInfo                    (XCmdPtr                 paramPtr,
  576.                                  short                     handlerNum,
  577.                                  Str255                 handlerName,
  578.                                  Str255                 objectName,
  579.                                  short *                varCount);
  580.  
  581. EXTERN_API( void )
  582. GetVarInfo                        (XCmdPtr                 paramPtr,
  583.                                  short                     handlerNum,
  584.                                  short                     varNum,
  585.                                  Str255                 varName,
  586.                                  Boolean *                isGlobal,
  587.                                  Str255                 varValue,
  588.                                  Handle                 varHndl);
  589.  
  590. EXTERN_API( void )
  591. SetVarValue                        (XCmdPtr                 paramPtr,
  592.                                  short                     handlerNum,
  593.                                  short                     varNum,
  594.                                  Handle                 varHndl);
  595.  
  596. EXTERN_API( Handle )
  597. GetStackCrawl                    (XCmdPtr                 paramPtr);
  598.  
  599. EXTERN_API( void )
  600. TraceScript                        (XCmdPtr                 paramPtr,
  601.                                  Boolean                 traceInto);
  602.  
  603.  
  604. #if PRAGMA_STRUCT_ALIGN
  605.     #pragma options align=reset
  606. #elif PRAGMA_STRUCT_PACKPUSH
  607.     #pragma pack(pop)
  608. #elif PRAGMA_STRUCT_PACK
  609.     #pragma pack()
  610. #endif
  611.  
  612. #ifdef PRAGMA_IMPORT_OFF
  613. #pragma import off
  614. #elif PRAGMA_IMPORT
  615. #pragma import reset
  616. #endif
  617.  
  618. #ifdef __cplusplus
  619. }
  620. #endif
  621.  
  622. #endif /* __HYPERXCMD__ */
  623.  
  624.